Telegram Group & Telegram Channel
Forwarded from Мобильный кот (Vasiliy Usov)
👑 SwiftGPT: Библиотека для работы с ChatGPT

Выложил на GitHub первую версию библиотеки SwiftGPT. Она предназначена для интеграции возможностей ChatGPT в iOS/macOS/Linux проекты.

⭐️ Особенности

- Совместимость с официальным OpenAI API: интерфейс основан на стилях OpenAI.
- Поддержка Swift 6 и Swift Concurrency.
- Мультиплатформенность: работает на всех платформах Apple (iOS, macOS, watchOS, tvOS) и даже на Linux.

⬆️ Основные функции

- Поддержка Chat Completions (генерация текста)
- В планах: Assistants API, Text-to-Speech, Text Transcriptions, Image generation и др.
- Возможность указать URL для запросов (актуально для РФ, когда делаешь свой прокси)

Почему я занялся SwiftGPT

Я давно интересуюсь искусственным интеллектом и активно применяю его решения в своих проектах. Для одной из задач мне потребовался API ChatGPT, но я обнаружил, что официального SDK для iOS не существует. Сначала я задумался о создании собственной библиотеки, но обратил внимание на пакет ChatGPTSwift.

У данной библиотеки есть сильная сторона — использование OpenAPI 3.0 спецификации для сетевого слоя. То есть разработчик взял официальную спецификацию и использую
пакет от Apple Swift OpenAPI Generator сгенерировал сетевой слой.

На мой взгляд, это супер эффективное решение, которое позволяет упростить интеграцию с любым бекендом.

Однако, реализация ChatGPTSwift имела ряд проблем, которые требовали исправлений.

🤕 Проблемы ChatGPTSwift и их решения

- Единый монолитный класс: библиотека объединяла все функции в одном классе, что снижало читаемость и масштабируемость. Я переработал архитектуру, распределив функции в соответствии с официальным ChatGPT API.
- Неудобное API: оригинальное API библиотеки отличалось от OpenAI API. Теперь интерфейс полностью соответствует официальной документации, что минимизирует порог вхождения.
- Ошибки Swift Concurrency: вместо необоснованных решений вроде @unchecked Sendable, я внедрил корректную поддержку Swift Concurrency.
- Сложные названия типов и свойств: автогенерированные имена вроде text_event_hyphen_stream заменены на более понятные и привычные — например, textEventStream.
- Баги и устаревший API: обновил сетевой слой до актуальной версии API и устранил ошибки в логике.
- Архаичная обработка контекста токенов: библиотека обрезала контекст до 4000 токенов, хотя ChatGPT последней версии поддерживает 128 000. Это ограничение устранено.

💊 Что дальше

Переработка библиотеки — это лишь начало работы. Сейчас SwiftGPT поддерживает основные функции, но я продолжаю тестировать её в реальных проектах, а также развивать поддержку новых и существующих API OpenAI.

# Пример использования

Все максимально просто

import SwiftGPT

// Установка API key
OpenAI.Configuration.apiKey = .apiKey("your-api-key")

Task {
// создание сессии
let chat = OpenAI.Chat()
// запрос
let response = try await chat.completions(prompt: "Как погода сегодня?")
print("Ответ: \(response)")
}

Если вам нужно интегрировать ChatGPT в iOS/macOS/Linux приложение, уже сейчас вы можете использовать SwiftGPT.

Забрать/посмотреть можно тут.

Теперь эта библиотека открыта для обратной связи и предложений сообщества!
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/ios_prog/540
Create:
Last Update:

👑 SwiftGPT: Библиотека для работы с ChatGPT

Выложил на GitHub первую версию библиотеки SwiftGPT. Она предназначена для интеграции возможностей ChatGPT в iOS/macOS/Linux проекты.

⭐️ Особенности

- Совместимость с официальным OpenAI API: интерфейс основан на стилях OpenAI.
- Поддержка Swift 6 и Swift Concurrency.
- Мультиплатформенность: работает на всех платформах Apple (iOS, macOS, watchOS, tvOS) и даже на Linux.

⬆️ Основные функции

- Поддержка Chat Completions (генерация текста)
- В планах: Assistants API, Text-to-Speech, Text Transcriptions, Image generation и др.
- Возможность указать URL для запросов (актуально для РФ, когда делаешь свой прокси)

Почему я занялся SwiftGPT

Я давно интересуюсь искусственным интеллектом и активно применяю его решения в своих проектах. Для одной из задач мне потребовался API ChatGPT, но я обнаружил, что официального SDK для iOS не существует. Сначала я задумался о создании собственной библиотеки, но обратил внимание на пакет ChatGPTSwift.

У данной библиотеки есть сильная сторона — использование OpenAPI 3.0 спецификации для сетевого слоя. То есть разработчик взял официальную спецификацию и использую
пакет от Apple Swift OpenAPI Generator сгенерировал сетевой слой.

На мой взгляд, это супер эффективное решение, которое позволяет упростить интеграцию с любым бекендом.

Однако, реализация ChatGPTSwift имела ряд проблем, которые требовали исправлений.

🤕 Проблемы ChatGPTSwift и их решения

- Единый монолитный класс: библиотека объединяла все функции в одном классе, что снижало читаемость и масштабируемость. Я переработал архитектуру, распределив функции в соответствии с официальным ChatGPT API.
- Неудобное API: оригинальное API библиотеки отличалось от OpenAI API. Теперь интерфейс полностью соответствует официальной документации, что минимизирует порог вхождения.
- Ошибки Swift Concurrency: вместо необоснованных решений вроде @unchecked Sendable, я внедрил корректную поддержку Swift Concurrency.
- Сложные названия типов и свойств: автогенерированные имена вроде text_event_hyphen_stream заменены на более понятные и привычные — например, textEventStream.
- Баги и устаревший API: обновил сетевой слой до актуальной версии API и устранил ошибки в логике.
- Архаичная обработка контекста токенов: библиотека обрезала контекст до 4000 токенов, хотя ChatGPT последней версии поддерживает 128 000. Это ограничение устранено.

💊 Что дальше

Переработка библиотеки — это лишь начало работы. Сейчас SwiftGPT поддерживает основные функции, но я продолжаю тестировать её в реальных проектах, а также развивать поддержку новых и существующих API OpenAI.

# Пример использования

Все максимально просто

import SwiftGPT

// Установка API key
OpenAI.Configuration.apiKey = .apiKey("your-api-key")

Task {
// создание сессии
let chat = OpenAI.Chat()
// запрос
let response = try await chat.completions(prompt: "Как погода сегодня?")
print("Ответ: \(response)")
}

Если вам нужно интегрировать ChatGPT в iOS/macOS/Linux приложение, уже сейчас вы можете использовать SwiftGPT.

Забрать/посмотреть можно тут.

Теперь эта библиотека открыта для обратной связи и предложений сообщества!

BY iOS Такой 🍏




Share with your friend now:
tg-me.com/ios_prog/540

View MORE
Open in Telegram


iOS Такой Telegram | DID YOU KNOW?

Date: |

Newly uncovered hack campaign in Telegram

The campaign, which security firm Check Point has named Rampant Kitten, comprises two main components, one for Windows and the other for Android. Rampant Kitten’s objective is to steal Telegram messages, passwords, and two-factor authentication codes sent by SMS and then also take screenshots and record sounds within earshot of an infected phone, the researchers said in a post published on Friday.

To pay the bills, Mr. Durov is issuing investors $1 billion to $1.5 billion of company debt, with the promise of discounted equity if the company eventually goes public, the people briefed on the plans said. He has also announced plans to start selling ads in public Telegram channels as soon as later this year, as well as offering other premium services for businesses and users.

iOS Такой from in


Telegram iOS Такой 🍏
FROM USA